package com.jiyun.controller;

import com.jiyun.common.pojo.Pinglunxinxi;
import com.jiyun.service.PinglunxinxiService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Collections;
import java.util.List;

@RestController
@RequestMapping("/mendian")
@Slf4j
public class PinglunxinxiController {
    // 自动注入评论信息业务服务，用于后续调用服务方法获取评论信息
    @Autowired
    PinglunxinxiService pinglunxinxiService;

    /**
     * 私有方法，用于获取评论信息并处理相关逻辑（如异常处理、空值判断等）
     * 这个方法的存在使得评论信息的获取逻辑集中于此，便于维护和修改
     *
     * @return 返回评论信息列表，如果列表为空或获取过程中出现异常，则返回空列表
     */
    private List<Pinglunxinxi> getPinglunInfo() {
        try {
            List<Pinglunxinxi> pinglunList = pinglunxinxiService.pinglunxinxi();
            if (pinglunList == null) {
                System.err.println("获取的评论信息列表为空");
                return Collections.emptyList();
            }
            return pinglunList;
        } catch (Exception e) {
            System.err.println("执行获取评论信息操作时出现异常: " + e.getMessage());
            return Collections.emptyList();
        }
    }

    /**
     * 处理"/pingjiaxinxi"请求，返回评论信息列表
     * 这个方法通过调用私有方法getPinglunInfo来获取数据，使得代码结构更加清晰
     *
     * @return 返回由getPinglunInfo方法获取的评论信息列表
     */
    @RequestMapping("/pingjiaxinxi")
    public List<Pinglunxinxi> pinglunxinxi() {
        return getPinglunInfo();
    }

    /**
     * 私有方法，用于获取更多评论信息并处理相关逻辑（如异常处理、空值判断等）
     * 这个方法类似于getPinglunInfo，但用于获取额外的评论信息，使得获取逻辑与主请求处理方法分离
     *
     * @return 返回更多评论信息列表，如果列表为空或获取过程中出现异常，则返回空列表
     */
    private List<Pinglunxinxi> getMorePinglunInfo() {
        try {
            List<Pinglunxinxi> pinglunList = pinglunxinxiService.gengduoxinxi();
            if (pinglunList == null) {
                System.err.println("获取的更多评论信息列表为空");
                return Collections.emptyList();
            }
            return pinglunList;
        } catch (Exception e) {
            System.err.println("执行获取更多评论信息操作时出现异常: " + e.getMessage());
            return Collections.emptyList();
        }
    }

    /**
     * 处理"gengduoxinxi"请求，返回更多评论信息列表
     * 这个方法通过调用私有方法getMorePinglunInfo来获取数据，使得主请求处理方法的逻辑更加清晰简洁
     *
     * @return 返回由getMorePinglunInfo方法获取的更多评论信息列表
     */
    @RequestMapping("gengduoxinxi")
    public List<Pinglunxinxi> gengduoxinxi() {
        // 调用私有方法获取更多评论信息列表并返回，这样使得主请求处理方法的逻辑更加清晰简洁
        return getMorePinglunInfo();
    }
}